﻿/******************************************************************************
 * 【本类功能概述】                                 					      *
 *  版权所有（C）2017-20XX，米兔网络                                         *
 *  保留所有权利。                                                            *
 ******************************************************************************
 *  作者 : <hughjk>
 *  创建时间:2018年5月3日 14:30:24
 *  文件描述:决策中心
 *****************************************************************************/

namespace BrainSpace
{
    using System.Collections.Generic;

    public class Decision
    {
        public Brain m_brain;
        public List<Monitor> monitorsList = new List<Monitor>();

        public void Init(int id, Brain brain)
        {
            m_brain = brain;
            var data = DecisionInfoCfgMgr.Instance.GetDataByID(id);
            int idle = 0;
            for (int i = 0; i < data.Data.Count; i++)
            {
                Monitor monitor = GoalPlant.CreateMonitor(data.Data[i], this);
                monitorsList.Add(monitor);
                if (data.Idle == monitor.m_data.m_id)
                {
                    idle = i;
                }
            }
            for (int i = 0; i < monitorsList.Count; i++)
            {
                monitorsList[i].Start();
            }
            Receive(monitorsList[idle].m_data.m_order);
        }

        //接受监听的指令
        public void Receive(Order order)
        {
            var cur = m_brain.OrderGoal.m_data;
            if (cur.m_orderData.m_source == (int)Source.Decision ||//是之前的AI命令
                cur.m_type == GoalType.Standby)
            {
                m_brain.CreateGoal(order);
            }
        }
    }
}